
/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"CDC39E5C-1C16-4B4C-9D37-9FA01B8B8F86"}
 */
function btn_alta_producto(event) {

	var win = application.createWindow(application.getUUID().toString(),JSWindow.MODAL_DIALOG);
	win.title = "Alta de un producto";
	forms.frm_t100_productos.foundset.newRecord();
	forms.frm_t100_productos.doEdit(event);
	win.show(forms.frm_t100_productos);
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"AD6C0AF8-CBB9-4E72-8A49-1E32A36DA0E9"}
 */
function btn_casillero_estatico(event) {

	var win = application.createWindow(application.getUUID().toString(),JSWindow.DIALOG);
	win.title = "Casillero Productos Estático";
	win.show(forms.frm_casillero);
}

/**
 * @param {JSEvent} event
 *
 * @properties={typeid:24,uuid:"D49BAA04-8946-4C26-BC40-E86F5A9BF5A9"}
 */
function btn_casillero_dinamico(event){
	
	/** @type {JSFoundSet<db:/casilleros/t100_productos>} */
	var fs = databaseManager.getFoundSet("casilleros", "t100_productos");
	fs.loadAllRecords();
	
	/** @type {JSForm} */
	var frm = btn_crear_casillero(event,fs);
	
	// Mostramos el formulario creado dinámicamente
	var win = application.createWindow(application.getUUID().toString(),JSWindow.DIALOG);
	win.title = "Casillero creado dinámicamente";
	win.resizable = false;
	win.show(frm);
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 * @param {JSFoundSet<db:/casilleros/t100_productos>} fs
 * @param {Number} [anchura_casilla] Por defecto es 100
 * @param {Number} [altura_casilla] Por defecto es 100
 * @param {Number} [num_casillas_horizontal] Por defecto es 4
 * @param {Number} [num_casillas_vertical] Por defecto es 4
 * @return {JSForm}
 *
 * @properties={typeid:24,uuid:"F737359A-37A1-4264-AF03-6AE886B425EE"}
 */
function btn_crear_casillero(event, fs, anchura_casilla, altura_casilla, num_casillas_horizontal, num_casillas_vertical) {

	// Valores por defecto 
	if (!anchura_casilla) anchura_casilla = 100;
	if (!altura_casilla) altura_casilla = 100;
	if (!num_casillas_horizontal) num_casillas_horizontal = 4;
	if(!num_casillas_vertical) num_casillas_vertical = 4;
	
	
	// Anchura del formulario en función de las parámetros de las casillas
	var frm_width = anchura_casilla * num_casillas_horizontal;
	var frm_height = altura_casilla * num_casillas_vertical + 100 ;
	
	// Si existe el formulario lo eliminamos de la memoria, en caso contrario nos daría error al ya existir
	if (solutionModel.getForm("frm_casillero_dinamico"))
		solutionModel.removeForm("frm_casillero_dinamico");
	
	// Creamos el formulario en memoria
	var jsform = solutionModel.newForm(
		"frm_casillero_dinamico",			// Nombre del formulario
		"db:/casilleros/t100_productos",	// Datasource del formulario
		null,								// Estilo
		false,								// Se muestra en el menú
		frm_width,							// Anchura
		frm_height);						// Altura
	
	jsform.styleClass = "casillero";
	jsform.scrollbars= SM_SCROLLBAR.HORIZONTAL_SCROLLBAR_NEVER;
	jsform.scrollbars= SM_SCROLLBAR.VERTICAL_SCROLLBAR_NEVER;
	
	// No mostramos el "navigator"
	jsform.navigator = SM_DEFAULTS.NONE;
	
	// Rellenamos el formulario con las casillas del casillero
	var num_casillas = num_casillas_horizontal * num_casillas_vertical;
	var posx = 0;
	var posy = 0;
	var contador = 1;
	for (var x=1;x<=num_casillas;x++){
		
		if (contador > num_casillas_horizontal){
			contador = 1;
			posx = 0;
			posy += altura_casilla;
		}
		
		// Leemos el registro del foundset de forma consecutiva
		/** @type {JSRecord<db:/casilleros/t100_productos>} */
		var jsrecord = fs.getRecord(x);
		
		// Creamos el botón con los parámetros dados
		var jsbutton = jsform.newButton(null,posx,posy,anchura_casilla,altura_casilla,null);
		
		var img_name = application.getUUID().toString();
		solutionModel.removeMedia(img_name);
		if (fs.getRecord(x)){
			var img = solutionModel.newMedia(img_name,jsrecord.thumbnail);
			var tooltip = jsbutton.toolTipText = jsrecord.nombre_imagen;
			jsbutton.imageMedia = img;
			jsbutton.toolTipText = tooltip;
			jsbutton.borderType = solutionModel.createLineBorder(1,"#000");
		}else{
			jsbutton.visible = false;
		}
		
		posx += anchura_casilla;
		contador++;
		
	}
	
	return jsform;
}


